using Inovout.Data.Domain;
using KuaJing.Common.Domain;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace KuaJing.Customs.Domain
{

    partial class Declaration : DataObject
    {

        /// <summary>
        /// 预录入编号
        /// </summary>
        public virtual string PreInputNumber { get; set; }

        /// <summary>
        /// 海关编号
        /// </summary>
        [DataProperty("海关编号（报关单号）", DataType.Text, null, true, null, null)]
        public virtual string Code { get; set; }

        /// <summary>
        /// 出口口岸
        /// </summary>
        public virtual string ExportPort { get; set; }

        /// <summary>
        /// 出口口岸编号
        /// </summary>
        public virtual string ExportPortNumber { get; set; }

        /// <summary>
        /// 备案号
        /// </summary>
        public virtual string RegistrationNumber { get; set; }

        /// <summary>
        /// 出口日期
        /// </summary>
        [DataProperty("出口日期", DataType.Date, "{0:yyyy-M-d h:m}", false, null, null)]
        public virtual DateTime ExportDate { get; set; }

        /// <summary>
        /// 申报日期
        /// </summary>
        public virtual DateTime DeclarationDate { get; set; }

        /// <summary>
        /// 经营单位
        /// </summary>
        public virtual string BusinessUnit { get; set; }

        /// <summary>
        /// 经营单位编号
        /// </summary>
        public virtual string BusinessUnitNumber { get; set; }

        /// <summary>
        /// 运输方式
        /// </summary>
        public virtual string TransportModel { get; set; }

        /// <summary>
        /// 运输工具名称
        /// </summary>
        public virtual string TransportName { get; set; }

        /// <summary>
        /// 提运单号
        /// </summary>
        public virtual string DeliveryNumber { get; set; }

        /// <summary>
        /// 发货单位
        /// </summary>
        public virtual string ForwardingUnit { get; set; }

        /// <summary>
        /// 发货单位编号
        /// </summary>
        public virtual string ForwardingUnitNumber { get; set; }

        /// <summary>
        /// 贸易方式
        /// </summary>
        public virtual string TradeModel { get; set; }

        /// <summary>
        /// 贸易方式代码
        /// </summary>
        public virtual string TradeModelNumber { get; set; }

        /// <summary>
        /// 征免性质
        /// </summary>
        public virtual string NatureOfExemption { get; set; }

        /// <summary>
        /// 征免性质代码
        /// </summary>
        public virtual string NatureOfExemptionNumber { get; set; }

        /// <summary>
        /// 结汇方式
        /// </summary>
        public virtual string SettlementWay { get; set; }

        /// <summary>
        /// 许可证号
        /// </summary>
        public virtual string LicenseNumber { get; set; }

        /// <summary>
        /// 贸易 国（地区）
        /// </summary>
        public virtual string TradeCountry { get; set; }

        /// <summary>
        /// 贸易国（地区）代码
        /// </summary>
        public virtual string TradeCountryNumber { get; set; }

        /// <summary>
        /// 抵运国（地区）
        /// </summary>
        [DataProperty("抵运国", DataType.Text, null, true, null, null)]
        public virtual string DestinationlCountry { get; set; }

        /// <summary>
        /// 抵运国（地区）代码
        /// </summary>
        public virtual string DestinationCountryNumber { get; set; }

        /// <summary>
        /// 抵运港
        /// </summary>
        public virtual string DestinationPort { get; set; }

        /// <summary>
        /// 抵运港编号
        /// </summary>
        public virtual string DestinationPortNumber { get; set; }

        /// <summary>
        /// 境内货源地
        /// </summary>
        public virtual string DomesticLocation { get; set; }

        /// <summary>
        /// 货源地编号
        /// </summary>
        public virtual string DomesticLocationNumber { get; set; }

        /// <summary>
        /// 批准文号
        /// </summary>
        public virtual string ApprovalNumber { get; set; }

        /// <summary>
        /// 成交方式
        /// </summary>
        public virtual string TransactionModel { get; set; }

        /// <summary>
        /// 运费
        /// </summary>
        public virtual decimal? TransportFee { get; set; }

        /// <summary>
        /// 保费
        /// </summary>
        public virtual string InsuranceFee { get; set; }

        /// <summary>
        /// 杂费
        /// </summary>
        public virtual decimal? IncidentalFee { get; set; }

        /// <summary>
        /// 合同协议号
        /// </summary>
        [DataProperty("合同协议号（订单编号）", DataType.Text, null, true, null, null)]
        public virtual string ContractNumber { get; set; }

        /// <summary>
        /// 件数
        /// </summary>
        public virtual int GoodsNumber { get; set; }

        /// <summary>
        /// 包装各类
        /// </summary>
        public virtual string PackageType { get; set; }

        /// <summary>
        /// 毛重（千克）
        /// </summary>
        public virtual decimal GrossWeight { get; set; }

        /// <summary>
        /// 净重（千克）
        /// </summary>
        public virtual decimal NetWeight { get; set; }

        /// <summary>
        /// 集装箱号
        /// </summary>
        public virtual string ContainerNumber { get; set; }

        /// <summary>
        /// 随船单据
        /// </summary>
        public virtual string DocumentsAttached { get; set; }

        /// <summary>
        /// 生产厂家
        /// </summary>
        public virtual string Manufacturer { get; set; }

        /// <summary>
        /// 标记唛码及备注
        /// </summary>
        public virtual string MarkAndRemark { get; set; }

        /// <summary>
        /// 申报单位
        /// </summary>
        public virtual string ApplicationUnit { get; set; }

        /// <summary>
        /// 申报单位编号
        /// </summary>
        public virtual string ApplicationUnitNumber { get; set; }

        public virtual ISet<DeclarationItem> Items { get; set; }
        public virtual File File { get; set; }
    }
}